"""
递归
"""
import os

def test_os(path):
    # 展示path作为文件夹下所有文件或文件夹，如果path本身不是文件夹，则会报错
    # print(os.listdir(path))
    # path是否是文件夹（如果是普通文件或者路径不存在，均返回False）
    print(os.path.isdir(path))
    # path是否存在（可能是文件或文件夹）
    print(os.path.exists(path))

def get_file_path_recur(path):
    if os.path.exists(path):
        if os.path.isdir(path):
            # 如果存在且是文件夹，则查找判断是否是目录并遍历
            paths = []
            for f in os.listdir(path):
                new_path = path + "\\" + f
                if os.path.isdir(new_path):
                    paths += get_file_path_recur(new_path)
                    pass
                else:
                    paths.append(new_path)
            return paths
        else:
            # 如果存在且是文件，则直接返回。只会在第一次调用
            return [path]
    else:
        # 只会在第一次调用时触发一次
        print(f"文件路径不存在：{path}")
        return []


if __name__ == '__main__':
    # test_os("E:\Projects")
    # test_os(r"E:\Files\Course\资料-python\第16章资料\netAssist.exe")
    paths=get_file_path_recur(r"E:\Files\Course\资料-python")
    for f in paths:
        print(f)